package com.itany.boot.config;

import com.itany.boot.interceptor.LogInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class MyConfig implements WebMvcConfigurer {

    /**
     * 配置直接访问视图
     * @param registry
     */
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        // 每调用一次方法,表示配置一个直接访问视图的命令
        registry.addViewController("/showLogin").setViewName("backend/login");
        registry.addViewController("/showMain").setViewName("backend/main");
    }

    /**
     * 配置拦截器
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 拦截器是谁,每调用一次方法,表示配置一个拦截器
        registry.addInterceptor(new LogInterceptor())
                // 拦截谁
                // 哪些请求会进入拦截器进行处理
                // 可以使用可变长参数指定请求,也可以通过多次调用方法的方式指定请求
                .addPathPatterns("/user/**")
                // 不拦截谁
                // 进入到拦截器的所有请求中,哪些请求不需要进入拦截器处理
                // 可以使用可变长参数指定请求,也可以通过多次调用方法的方式指定请求
                .excludePathPatterns("/user/add")
                .excludePathPatterns("/user/remove","/user/modify");
    }
}
